// var express = require('express');
let http = require('http');
let url = require("url");const path = require('path');
const fs = require('fs');
// mime第三方模块可以根据当前请求路径分析出资源的类型 要先在node中安装第三方模块，然后再引入
const mime = require('mime');
// 2.创建网站服务器
const app = http.createServer();

app.on('request',(req,res) => {
    // 获取不带任何参数的请求地址
    let pathname = url.parse(req.url).pathname;
    // 如果用户什么也没有输入，只是:localhost:3000，我们默认打开todolist.html页面
    pathname = pathname == '/' ? '/index.html' : pathname;
    // 使用path系统模块下的join方法进行路径拼接
    // __dirname：当前文件的绝对路径
    let realPath = path.join(__dirname,pathname);
    // 当前请求的文件的所有类型，因为一个文件里可能既有html文件、css文件、js文件、img文件等
    let type = mime.getType(realPath);
    // 读取文件 用到系统模块fs
    fs.readFile(realPath,(err,doc) => {
        // 如果文件读取失败
        if(err != null){
            res.writeHead(404,{
                'content-type':'text/html;charset=utf8'
            })
            res.end('文件读取失败'+err);
            return;
        }
        // 文件读取成功
        res.writeHead(200,{
            // 浏览器执行一个文件时，不一定只是html文件，可能是css文件/js文件/img文件
            // 因此不能单一的设置内容类型为text/html
            // mime模块下有一个getType()方法
            'content-type':type
        })
        res.end(doc);
    })
})
// 监听端口
app.listen(3000);
console.log('网站服务器启动成功');